import java.util.Scanner;

public class demo {


//    洗牌
//    洗牌在生活中十分常见，现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌，从上到下依次是第1张，第2张，第3张一直到第2n张。
//    首先，我们把这2n张牌分成两堆，左手拿着第1张到第n张（上半堆），右手拿着第n+1张到第2n张（下半堆）。接着就开始洗牌的过程，
//    先放下右手的最后一张牌，再放下左手的最后一张牌，接着放下右手的倒数第二张牌，再放下左手的倒数第二张牌，直到最后放下左手的第一张牌。
//    接着把牌合并起来就可以了。 例如有6张牌，最开始牌的序列是1,2,3,4,5,6。首先分成两组，左手拿着1,2,3；右手拿着4,5,6。
//    在洗牌过程中按顺序放下了6,3,5,2,4,1。把这六张牌再次合成一组牌之后，我们按照从上往下的顺序看这组牌，就变成了序列1,4,2,5,3,6。
//    现在给出一个原始牌组，请输出这副牌洗牌k次之后从上往下的序列。

    //    洗牌
    public static void playCards(int[] cards, int n, int k) {
        //需要洗k次牌
        for(int i = 0; i < k; i++) {
            int[] newCards = new int[cards.length];
            //重点在这 牌交换的后出现的位置
            //下标从0开始
            //对于左手              j -> 2*j
            //对于右手              j+n -> 2*j+1
            for(int j = 0; j < n; j++) {//不包括第一个和最后一张牌 因为怎么洗牌他们都不变
                newCards[2*j] = cards[j];
                newCards[2*j+1] = cards[j+n];
            }
            cards = newCards;
        }
        //打印
        printfCard(cards);
    }
    //    打印
    public static void printfCard(int[] cards) {
        for(int i = 0; i < cards.length-1; i++) {
            System.out.print(cards[i] + " ");//这里不能用 +' '   因为' ' 打印时会因为运算操作转换成32
        }
        System.out.println(cards[cards.length-1]);
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // 有几组牌需要洗
        int group = in.nextInt();
        for(int i = 0; i < group; i++) {
            //2n是牌的数量  n是左手,右手牌的数量
            int n = in.nextInt();
            //k是你需要洗几次
            int k = in.nextInt();
            int[] cards = new int[2*n];
            for(int j = 0; j < 2*n; j++) {
                cards[j] = in.nextInt();
            }
            playCards(cards, n, k);
        }
    }








    //    MP3光标位置
//    输入说明：
//1 输入歌曲数量
//2 输入命令 U或者D
    public static void passCmd(int num, String str) {
        int first = 1;
        int mouse = 1;
        char[] order = str.toCharArray();
        int len = order.length;//表示字符串的长度  不是歌曲的 数目
        //歌曲数量小于等于4的情况
        if (num <= 4) {//first始终在1
            for (int i = 0; i < len; i++) {

                //光标在第一首歌曲上时，按Up键光标挪到最后一首歌曲；光标在最后一首歌曲时，按Down键光标挪到第一首歌曲。
                if (mouse==1 && order[i]=='U') {
                    mouse=num;
                }else if (mouse==num && order[i]=='D') {
                    mouse = 1;
//                    其他情况下用户按Up键，光标挪到上一首歌曲；用户按Down键光标挪到下一首歌曲。
                }else if (order[i]=='U') {//↑是光标--   ↓是光标++
                    mouse--;
                }else if (order[i]=='D'){
                    mouse++;
                }
            }
            //打印
            for (int i = 1; i < num; i++) {
                System.out.print(i + " ");
            }
            System.out.println(num);
            System.out.println(mouse);

            //歌曲数量大于4的情况
        }else {
            for (int i = 0; i < len; i++) {
//             10首歌为例
//             特殊翻页：
//                屏幕显示的是第一页（即显示第1 – 4首）时，光标在第一首歌曲上，用户按Up键后，
//                屏幕要显示最后一页（即显示第7-10首歌），同时光标放到最后一首歌上。
//                同样的，屏幕显示最后一页时，光标在最后一首歌曲上，用户按Down键，屏幕要显示第一页，光标挪到第一首歌上。
                if (first==1 && mouse==1 && order[i]=='U') {
                    first = num - 3;
                    mouse = num;
                }else if (first==num-3 && mouse==num && order[i]=='D') {
                    first = 1;
                    mouse = 1;
//              一般翻页：
//                    屏幕显示的不是第一页时，光标在当前屏幕显示的第一首歌曲时，用户按Up键后，
//                    屏幕从当前歌曲的上一首开始显示，光标也挪到上一首歌曲。光标当前屏幕的最后一首歌时的Down键处理也类似。
                }else if (first!=1 && first==mouse && order[i]=='U') {
                    first--;
                    mouse--;
                }else if (first!=num-3 && first==mouse-3 && order[i]=='D') {
                    first++;
                    mouse++;
//                    其他情况，不用翻页，只是挪动光标就行
                }else if (order[i]=='U') {
                    mouse--;
                }else if (order[i]=='D') {
                    mouse++;
                }
            }
            //打印
            for (int i = first; i < first+3; i++) {
                System.out.print(i+" ");
            }
            System.out.println(first+3);
            System.out.println(mouse);
        }
    }


    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        String order = in.next();
        passCmd(num, order);
    }
}
